package com.yan.design.java8.k4;

import com.yan.design.pojo.Po;

import java.util.Optional;

/**
 * 4 Optional对象
 *
 * @author shengren.yan
 * @create 2022-08-17
 */
public class Optional1 {

    public static void main(String[] args) {
        // 1.
        // 原代码
//        if (对象 == null){
//            return 某个方法（）;
//        }
        // 可替代
        //  Optional.ofNullable(对象).orElseGet(()->某个方法());
        Optional.ofNullable(new Po()).orElseGet(() -> doc());

        // 2. 判断对象是否为null
        Optional<String> ss = Optional.ofNullable("ss");
        // true 值不空，false 值为空
        boolean present = ss.isPresent();

        // 3.默认值  -- 设置默认值
        String 默认值 = ss.orElse("默认值");
        String strr = ss.orElseGet(() -> {
            System.out.println("可以有一些操作");
            return "ss";
        });

        // 4.判断某个值是否等于ww
        boolean present1 = Optional.ofNullable("ee").filter(x -> x.equals("ww")).isPresent();

    }

    public static Po doc(){
        return new Po();
    }
}
